import { getToken, setToken, removeToken } from "@/utils/auth";

const user = {
  state: {
    channelInfo: {},
    token: getToken(),
    isLogin: !!getToken(),
    userInfo: sessionStorage.getItem("userInfo")
      ? JSON.parse(sessionStorage.getItem("userInfo"))
      : "",
  },

  mutations: {
    SET_TOKEN: (state, payload) => {
      state.token = payload.token;
      setToken(payload.token);
      sessionStorage.setItem("token", payload.token);
    },
    SET_ISLOGIN: (state, payload) => {
      state.isLogin = payload.isLogin;
    },
    UPDATE_USER_INFO: (state, payload) => {
      state.userInfo = payload;
      sessionStorage.setItem("userInfo", JSON.stringify(payload));
    },
    UPDATE_LOGOUT: (state) => {
      state.token = "";
      state.isLogin = false;
      state.userInfo = {};
      removeToken();
      sessionStorage.setItem("token", "");
      sessionStorage.setItem("userInfo", "");
    },
  },

  actions: {
    // 登录
    // Login({ commit }, userInfo) {
    //   const username = userInfo.username.trim();
    //   return new Promise((resolve, reject) => {
    //     login(username, userInfo.password)
    //       .then((response) => {
    //         const data = response.data;
    //         setToken(data.token);
    //         commit("SET_TOKEN", data.token);
    //         resolve();
    //       })
    //       .catch((error) => {
    //         reject(error);
    //       });
    //   });
    // },

    // 获取用户信息
    // GetInfo({ commit, state }) {
    //   return new Promise((resolve, reject) => {
    //     getInfo(state.token)
    //       .then((response) => {
    //         const data = response.data;
    //         if (data.roles && data.roles.length > 0) {
    //           // 验证返回的roles是否是一个非空数组
    //           commit("SET_ROLES", data.roles);
    //         } else {
    //           reject("getInfo: roles must be a non-null array !");
    //         }
    //         commit("SET_NAME", data.name);
    //         commit("SET_AVATAR", data.avatar);
    //         resolve(response);
    //       })
    //       .catch((error) => {
    //         reject(error);
    //       });
    //   });
    // },

    // 登出
    // LogOut({ commit, state }) {
    //   return new Promise((resolve, reject) => {
    //     logout(state.token)
    //       .then(() => {
    //         commit("SET_TOKEN", "");
    //         commit("SET_ROLES", []);
    //         removeToken();
    //         resolve();
    //       })
    //       .catch((error) => {
    //         reject(error);
    //       });
    //   });
    // },

    // 前端 登出
    // FedLogOut({ commit }) {
    //   return new Promise((resolve) => {
    //     commit("SET_TOKEN", "");
    //     removeToken();
    //     resolve();
    //   });
    // },
  },
};

export default user;
